Method and apparatus for creating web content and identifying advertisements for users creating and viewing content

ABSTRACT

A system and method allows a user to define books of pictures and customizable text, and HTML code is generated from such definition to allow the books to be displayed on a browser. Based on the user&#39;s book definitions or viewers activities, the individual&#39;s interests, moods and/or emotions may be identified and ads may be identified and displayed to such person that correspond to such interests, moods or emotions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication 61/665,213, filed Jun. 27, 2012, the entirety of which isincorporated by reference herein.

COPYRIGHT AUTHORIZATION

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

FIELD OF THE INVENTION

The present invention is related to computer software and morespecifically to computer software for content creation and fordisplaying advertisements.

BACKGROUND

The forms of expression on the Internet are suboptimal. What is neededis a system and method that improves expression on the Internet.Traditional forms of advertising are also suboptimal and a system andmethod for improved forms of advertising is needed.

SUMMARY

A system and method allows a user to provide registration information ifthe user desires to create books, and for each page in each book theuser desires to create, to specify a photo, and text to be superimposedonto the photo. The photo may be specified as a digital file on theuser's computer system or mobile device, a photo in the user's socialnetwork account, either supplied to the social account by the user ordisplayed on the user's newsfeed, the page or pages the user sees whenthe user logs into their social network account, or the user may enter asearch term and the system and method selects and displays to the userpublicly available photos corresponding to that search term and allowsthe user to select one of the displayed photos. Other techniques ofspecifying a photograph may be used, such as the user specifying a URLof a hosted photograph, or by using a bookmarklet that identifies theURL of any number of images on a web page and allows the user to selectone of them. In one embodiment, the user can also indicate that no photoshould be displayed. Photos are described herein, however, any image maybe used in place of the photos described.

The photo specified by the user is then displayed on a page with a setof user interface controls that allows the user to specify text,attributes of the text such as the font, size, color, justification andopacity of the text, and to specify the color, size, position andopacity of a text box to be displayed over the photo, and over which thetext itself will be displayed. All of the specifications are optional,and may include defaults, allowing the user to specify a photo with notext or vice versa. In one embodiment, a user may select one of severalpredefined templates that each specifies a different combination of suchproperties.

In one embodiment, the text and the search term can be the same, enteredonly once, so the photos suggested by the system and method are based onthe text that will be displayed over the photo. The search for thephotos may be based on a semantic analysis of the text rather than justa simple keyword search.

The user may specify the above information for any number of photos, aswell as the order in which the photos are displayed, and may save theset of photos, text and attributes as the pages of a book. The user mayspecify a title and tags for the book, as well as tags for each set of aphoto and associated text in the book. The user may indicate an orderfor each photo and its associated text and attributes that is differentfrom the order in which the specification for such information wasreceived. In one embodiment, each page of the book is rendered as animage as or soon after it is saved, the image including the photo andthe text, formatted as specified.

The system and method generates a link to the book and supplies it tothe user who created a book to share with others. The system and methodalso allows users to search for books for which no links have beenprovided, and the search function searches for titles, tags, and text,and may include searching for synonyms of the search terms and provideslinks to books that correspond to the user's search terms (though in oneembodiment, a user may elect to not allow a book the user created toappear in searches). When a user clicks a link to a book, each photo,and its associated text and text box that define the pages in the bookare displayed to the user in the order specified by the user who createdthe book by providing rendering instructions to a browser or anapplication over a network that causes the browser to perform suchdisplay. In one embodiment, the pages are displayed one at a time, withuser interface controls allowing the user to move forward or backwardsone page, though other arrangements may be used. In one embodiment, asthe user specifies a different page, animation instructions provided bythe server or part of the application are rendered by the user's browseror application to provide the appearance that the pages are turning.

The user is allowed to move past the last page in the book, at whichpoint an additional page is displayed listing biographical informationabout the user who created the book, links to other books created bythat user, and an optional forum that viewers of a book can use to sharecomments about the book with other subsequent viewers of that book.

Advertisements may be displayed to users who create and view books. Theadvertisements may be received with categories that describe the user'sinterests and/or the user's moods or emotions to which the advertiserbelieves the advertisement will appeal. Such interests, emotions and/ormoods may be identified from the content of the books the user hascreated or read (including the search term used to locate each photo ifa search term was used), with a reader who completes a book beingcorrelated considered to be more interested in the subject of the bookand having a matching mood than someone who does not complete the book,and an author of the book being even more interested and having a morecorrelated mood.

In addition to using ads for which the interests, emotions and/or moodof the user match the interests, emotions and moods suggested by theadvertiser, advertisements clicked on by other users with similarinterests, emotions and/or moods, as identified by the books createdand/or viewed, may also be displayed to the user.

In one embodiment, as the user specifies each page, the page is renderedand displayed to the user, within a few seconds. In addition,advertisements are identified within a few seconds of beginning theadvertisement identification process and the advertisement is providedfor display also rapidly after identification.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described certain example embodiments of the presentdisclosure in general terms, reference will now be made to theaccompanying drawings, which are not necessarily drawn to scale, andwherein:

FIG. 1 is a block schematic diagram of a conventional computer system;

FIG. 2, consisting of FIGS. 2A and 2B, is a flowchart illustrating amethod of receiving specifications for an online book and for renderingthe online book along with advertisements according to one embodiment ofthe present invention;

FIG. 3 is a flowchart illustrating a method of identifyingadvertisements to be displayed with pages of an online book according toone embodiment of the present invention;

FIG. 4 is a block schematic diagram of a system for receivingspecifications for an online book and for rendering the online bookalong with advertisements according to one embodiment of the presentinvention;

FIG. 5A is a block schematic diagram of representative server system ofFIG. 4 shown in more detail according to one embodiment of the presentinvention;

FIG. 5B is a block schematic diagram of a representative server admanager of FIG. 5A shown in more detail according to one embodiment ofthe present invention; and

FIG. 6 is a block schematic of a user device of FIG. 4 according to oneembodiment of the present invention.

DETAILED DESCRIPTION

The present invention may be implemented as computer software on aconventional computer system. Referring now to FIG. 1, a conventionalcomputer system 150 for practicing the present invention is shown.Processor 160 retrieves and executes software instructions stored instorage 162 such as memory, which may be Random Access Memory (RAM) andmay control other components to perform the present invention. Storage162 may be used to store program instructions or data or both.

Storage 164, such as a computer disk drive or other nonvolatile storage,may provide storage of data or program instructions. In one embodiment,storage 164 provides longer term storage of instructions and data, withstorage 162 providing storage for data or instructions that may only berequired for a shorter time than that of storage 164. Input device 166such as a computer keyboard or mouse or both allows user input to thesystem 150. Output 168, such as a display or printer, allows the systemto provide information such as instructions, data or other informationto the user of the system 150. Storage input device 170 such as aconventional floppy disk drive or CD-ROM drive accepts via input 172computer program products 174 such as a conventional floppy disk orCD-ROM or other nonvolatile storage media that may be used to transportcomputer instructions or data to the system 150. Computer programproduct 174 has encoded thereon computer readable program code devices176, such as magnetic charges in the case of a floppy disk or opticalencodings in the case of a CD-ROM which are encoded as programinstructions, data or both to configure the computer system 150 tooperate as described below.

In one embodiment, each computer system 150 is a conventional SUNMICROSYSTEMS T SERIES SERVER running the SOLARIS operating systemcommercially available from ORACLE CORPORATION of Redwood Shores,Calif., a PENTIUM-compatible personal computer system such as areavailable from DELL COMPUTER CORPORATION of Round Rock, Tex. running aversion of the WINDOWS operating system (such as XP, VISTA, or 7)commercially available from MICROSOFT Corporation of Redmond Wash. or aMacintosh computer system running the MACOS or OPENSTEP operating systemcommercially available from APPLE INCORPORATED of Cupertino, Calif. andthe FIREFOX browser commercially available from MOZILLA FOUNDATION ofMountain View, Calif. or INTERNET EXPLORER browser commerciallyavailable from MICROSOFT above, although other systems may be used. Eachcomputer system 150 may be a DROID 2 mobile telephone commerciallyavailable from MOTOROLA CORPORATION of Schaumberg, Ill. running theANDROID operating system commercially available from GOOGLE, INC. ofMountain View, Calif. Various computer systems may be employed, with thevarious computer systems communicating with one another via theInternet, a conventional cellular telephone network, an Ethernetnetwork, or all of these.

FIG. 2, consisting of FIGS. 2A and 2B, is a flowchart illustrating amethod of receiving specifications for, and providing renderinginstructions for display of an online book and advertisements accordingto one embodiment of the present invention.

Provide Mobile Application to User.

Referring now to FIG. 2, one or more mobile applications are optionallyprovided to a user 210. In one embodiment, the mobile application may beprovided to the user on a wireless communication device, such as theuser's cell phone or tablet computer, and the user may download themobile application to the user's device in any conventional manner. Themobile application may be provided to, and downloaded by, any number ofusers on any number of devices at any time.

Receive Registration Information Including User Identifier and Password,User Biography, and Social Network Identifier(s).

Registration information, including a user identifier and password, userbiographical information, and social network identifier(s), is receivedand stored at any time for any number of users and may be updated at anytime 212. User biographical information may be any information, such asthe user's first and/or last name, age, city/state, and/or any otherbiographical information, such as conventional author biographicalinformation. In one embodiment, registration information or any otherinformation or comments described herein may be received on the mobileapplication, such as via the user's cell phone, or it may be receivedvia one or more web pages via a browser on a personal computer. Anysocial network identifier provided by the user may be received alongwith the name of the social network or the URL of the social networkingwebsite for which such user identifier applies and the password of thesocial network account. In one embodiment, permission for access tosocial network information, such social network profile information andsocial network photographs may be requested and received from the socialnetwork account corresponding to any social network identifier providedby the user. Any such social network information may be storedassociated with the user's registration information. In one embodiment,steps 210 and 212 are each independently operating processes asindicated by the dashed lines in the Figures.

Receive User Login.

At any time, a user's log in, including the user's user identifier andpassword received as part of step 212, is received 214 via conventionallog in techniques.

Receive Create New Book Command, Title, and Tags.

A command to create a new book is received from the logged in user 216along with a book title and any book tags. In one embodiment, the optionto create a new book may be provided to the user, for example, as acreate new book link or button provided on the application or a webpage, and the create new book command is received when the user pressesthe provided link. A suitable user interface is provided to allow theuser to enter book title information as well as any number ofconventional tags corresponding to the new book.

As described herein, any information provided by the user in the processof creating the book, including tags or any other information, may berecorded, and any information recorded for the user may be used toidentify specific advertisements for the user as described below withreference to FIG. 3.

Receive Photo Source Selection: Upload/Social Network/None/SearchTerm/URL/Bookmarklet.

The first page of the new book is created, and a suitable user interfaceis provided to allow the user to select a photo source for the photocorresponding to the user's first page, and a photo source selection isreceived from the user 218. In one embodiment, possible selections forthe photo source may include the option to upload a photo from theuser's computer, select a photo from the user's social network, notinclude a photo, or search for a photo using a search term. In oneembodiment, if selected, the option to search for a photo from publiclyor otherwise available photos using a search term may be received fromthe user with the search term. As noted above, a photo may be specified,though any image may be used in its place.

If Selection is Upload.

Receive File Location, Upload Photo, and Store Photo.

If the selection received from the user is the option to upload a photo220, then the file location of the photo is received from the user, thephoto is uploaded in a conventional manner, and the uploaded photo isstored 224. In one embodiment, one or more conventional tools foruploading files may be provided to the user to allow the user to providethe location of the photo, such as a file upload dialog box or aconventional bookmarklet as described below. The received location isused to upload the specified photo, and the uploaded photo may bestored, or the location of the photo may be stored, or both.

The user may specify the source of the photo as a file on the user'scomputer, a photo on a user device, or a URL, and the URL may beprovided via a conventional bookmarklet, such as one that identifies theURLs of all images on a web page.

If Selection is Social Network.

Log into Social Network Account, Retrieve Photos, Display Photos,Receive Selection, and Store.

If the photo source selection received from the user is the option toselect a photo from the user's social network account, which may includethose provided by the user or those available on the user's socialnetwork news feed 220, then social network identifier(s) received withthe user's registration information as described above are used toaccess the user's social network account at the user's specified socialnetwork, photos from the user's social network are retrieved anddisplayed to the user along with a user interface element to allowselection of a photo, the user photo selection is received, and thephoto selection is stored 226. In one embodiment, permission to accessthe user's social network photos may be requested and received, orpermission may already have been received from the user when such socialnetwork identifier(s) were received as part of step 212. Photosretrieved from the user's social network may be photos posted and/oruploaded to the social network by the user, photos of the user added bythe user or by other users, photos added by the user's friends orfriends of friends on the social network, or any other photos from theuser's social network. In one embodiment, the photos are retrieved andsorted on a basis of how likely they are to be selected by the user,such as in reverse chronological order, and the sorted photos aredisplayed to the user in order, such as from most likely to be chosen bythe user to least likely to be chosen by the user. In one embodiment,the selected social network photo may be stored along with any socialnetwork descriptions, tags, and/or comments associated with the selectedphoto on the social network.

If Selection is Search.

Identify Photos Corresponding to Search Term, Order and Display by MostLikely to Select, Receive Selection.

If the photo source selection received from the user is the option tosearch for a photo using a search term 220, then photos corresponding tothe search term are identified and/or retrieved, displayed in order frommost likely to least likely to be selected by the user, and the userphoto selection is received and stored 222. In one embodiment, photosare located by matching the search terms received, and/or any synonymsof the search terms, with any titles and/or tags corresponding to photosfrom publicly available sources. In one embodiment, photos most likelyto be selected are those which the search terms match the title wordsexactly, followed by photos with tags that match the search termsexactly, followed by photos for which the title is a synonym of one ormore search terms, followed by photos for which the tags are a synonymof one or more search terms, with photos having more matching or synonymtitles or tags being considered more likely to be selected over thosewith fewer such terms.

In one embodiment, photos may be located using the text of a prior pageor the immediately preceding page of the book as one or more searchterms, either in addition to an explicit search term the user suppliesor instead of any explicit search term supplied by the user. In anotherembodiment, the user may supply the text to be added to a photo asdescribed herein, before the photo is selected and that text may be usedto locate photos or other images that correspond to the text. The photoor image may be identified based on not only the terms in the text but asemantic analysis of the text to identify certain other terms that,separately or together with the text, may be used to locate a photo orimage. For example, the text may refer to a dog, but may use termsassociated with unhappiness. A photo or other image may be located bysearching for those associated with “sad” and “dog”, even though theword, “sad” was never used in the text. In one embodiment, photos aredisplayed as suggestions as the user types.

Display: Any Photo, Shaded Text Box Over Photo, User Interface Controlsto Change Size and/or Location of Text Box.

Once the user has uploaded a photo, or selected a photo from the user'ssocial network or from search results or selected a photo from any othersource, the selected photo is displayed, and an opaque shaded text boxis displayed over a portion of the selected photo, along with one ormore user interface controls that allow the user to change the sizeand/or location of the text box 230. In one embodiment, the shaded textbox displayed over the photo may also include a control to remove thetext box, such as an ‘X’ or other icon in the left upper corner of thetext box to close the text box. The user interface control(s) to changethe size of the text box may include an icon on one corner of the textbox which the user may click on and drag to change the size of the textbox while maintaining the same proportions, or ratio of the length ofthe sides, of the text box, as well as an icon on a different corner ofthe text box which the user may click on and drag to change the size ofthe text box without maintaining the same proportions of the text box.In one embodiment, the user interface control to change the location ofthe text box may include clicking any part of the box that is notalready specified as another user interface control and dragging the boxto its new location.

Display Text Controls: Size, Font, Style, Color, Opacity; and DisplayBackground Controls: Color, Opacity.

Any number of text controls, including controls for the size, font,style, color, justification, and opacity, are displayed, and any numberof background controls, including controls for color and opacity, aredisplayed 232. In one embodiment, background controls are controls whichmanipulate the background of an optional text box that can be displayedwhen the photo is viewed as described below with respect to FIG. 2B. Forexample, the user may set the text and background controls such that avery opaque, black text box is displayed for text that is white or anyother light color which may be more visible on a darker background thana lighter background. In another example, the user may use the controlsto display a text box that is completely transparent, i.e. completelynon-opaque, to create text that appears directly over features of thephotograph (neither the text box itself or outline of the text box arevisible).

In one embodiment, a user may select from among several initial presetsof such controls, which may be fixed, or may be used as starting pointsfor the user to adjust. The initial presets may be grouped with othersimilar presets to allow the user to select a group and then select oneof the presets within the group.

In one embodiment, a “next” or “continue” command may also be providedto the user, such as via a forward arrow or button.

Receive Text, “Next” Command, or Change.

An action is indicated by the user, such as the user entering orchanging text, the user identifying a link and optionally a hotspot forthe link or the user selecting the “next” command, or the userindicating a change to the current page, and such action or indicationfrom the user is received 234.

If any text or other change to the current page is received from theuser via the user interface controls provided 236, then the changesindicated are displayed in a conventional manner, and the methodcontinues at step 230 with the newly implemented changes.

If a URL, and optionally a specification of a hotspot is received, suchinformation is stored associated with the page. A URL specified allowsthe reader of a page to have the user's browser request the URL. The URLmay be caused to be requested if the reader of a page clicks anywhere onthe page other than areas for which another user interface control isspecified, or it may be requested if the user clicks a part of the pagedefined by the user, such part referred to as a hotspot. Any number ofhotspots may be specified, along with a different or the same URL foreach hotspot.

If the “next” command is received from the user 236, then any page tagsand the page number or identifier of the current page are received, anda command to add a new page to the book or complete the book may also bereceived 240. In one embodiment, a suitable user interface is providedto allow the user to provide conventional tags for the photograph, andany tags provided by the user are received and stored with the pageidentifier. The default page number of the current page may be the orderin which the page was created relative to any other pages in the samebook. Page data corresponding to the current page may be used togenerate a new image which includes the background photograph, any textprovided by the user along with the corresponding text size, font,style, justification, color, and opacity of the text, and any additionalinformation regarding the text box in which to display the textincluding the location, background color, and opacity. The newlygenerated image may be stored as page data or with page data, and in oneembodiment, the page data may be stored with the page number oridentifier.

If Add New Page.

Identify and Display Ad(s), Record any User Click.

If a command to add a new page is received 242, then advertisements(ads) may be identified for the user and displayed to the user, and anyclicks on any ads displayed to the user are recorded 246. Ads may beidentified for the user as described below in FIG. 3. Any click receivedfrom the user corresponding to any displayed advertisement is recordedalong with the user's user identifier. In one embodiment, the number oftimes an ad is displayed to the user is also recorded. The methodcontinues at step 218.

If Done.

Generate Book Link, Store Data and REST Information.

If an indication is received that the user is done creating the book242, then a link to the book is generated, and any page data for thebook is stored associated with the generated link and/or RESTinformation included in the generated link 244. In one embodiment, step242 may include receiving an indication as to whether a forum should beappended to the end of the book, the forum allowing others who view thebook to post comments, and the indication is stored with the otherinformation for the book. The method continues at step 216.

Receive Request for Book.

At any time, a request to view a book may be received 250. In oneembodiment, the request to view a book may be received as a click on alink to a book previously generated and displayed as part of step 244,and the request may be received from a registered user or anunregistered user. When the user requests to view a book by clicking ona link to a book, the user may be identified using conventional cookietechniques. In one embodiment, if no cookie is stored for the userrequesting the book, then one or more cookies may be stored to theuser's computer including a reader identifier which may be retrieved andused to identify the user if the same computer is used to view a book orother pages from the same book at a later time. In one embodiment, booksmay be viewed by registered users or unregistered users, and the readeridentifier stored and used to identify the user viewing the book may ormay not match a registered use identifier, such as that associated witha user creating a book above.

Select First Page.

The requested book is identified, and the first page of the identifiedbook is selected 252. In one embodiment, REST information included inthe link is used to identify the requested book and retrieve page datacorresponding to the first page of the requested book. REST informationmay include information to the right of a slash to the right of the toplevel domain of a URL in the link.

Render Page, Including Title, Image Overlaid with Text from SelectedPage, and Navigation User Interface.

Commands for rendering the selected page or the image generated andstored corresponding to the selected page are identified based on thestored page data, the commands or image are provided to a browser or theapplication via the network, and the selected page is rendered and/ordisplayed 254, including the title of the page, the image or photo ofthe page overlaid with the text of the page, and any navigation userinterface controls. In one embodiment, page data corresponding to theselected page is sent from a network server to the user's computer, andthe selected page is rendered and/or displayed by the user's browser orapplication described above using such page data. Navigation controlsprovided as part of the commands and rendered may include a “next page”or forward button, a “previous page” or back button, and any number ofother navigation buttons or links.

Identify and Display Ad(s), Record Clicks, Pages.

One or more advertisements are identified for the user, identifiers ofsuch Alanna DeSalvo recorded associated with the identifier of the userand the date and time, the ads are provided to be rendered over thenetwork along with commands to cause them to be rendered, and such oneor more advertisements are displayed along with the rendered page, andany user clicks on advertisements are recorded for the user 256. Thepage number of the selected page, or the total number of pages up to theselected page of the book that the user has viewed, is also recorded256. In one embodiment, ads are identified for the user as describedbelow with reference to FIG. 3.

Receive Navigation Command, Select Page, and Animate Flip.

A navigation command is received from the user, a new page is selectedbased on such navigation command, and a flip to the newly selected pagemay be animated 258. In one embodiment, the navigation command may bereceived via a click on the “next” or “previous” buttons provided aspart of the navigation controls. For example, the “next” command selectsthe next page of the book and animates a flip to the next page. Theanimation may be performed via commands supplied with either or both ofthe current and next page, may be supplied separately, may be performednatively by the application and not supplied, or no animation may bedisplayed.

If Selected Page is the Last Page of Book.

Display Author Bio, Links to Other Books by Same Author, and Forum.

If the newly selected page is past the last page of the book 260, thenbiographical information corresponding to the author or creator of thebook is displayed, along with any links to other books created by thesame author and one or more forums, such as a forum for comments to thebook 262. In one embodiment, comments to any forum may be posted byregistered users as well as unregistered users. Biography informationcorresponding to the author of creator of the book may have beenreceived from the author of the book as part of registration at step212.

If Selected Page is not the Last Page of Book.

If the newly selected page is not the last page of the book 260, themethod continues at step 254 using the newly selected page.

Identify Ad(s) Record Clicks, Forum Read, Forum Posts.

Ads are identified for the user (as described below with reference toFIG. 3), the identified ads are recorded and provided as describedabove, the ads are displayed, and any user clicks on the displayed adsare recorded 264. Any comments or other posts made on the provided forumare also recorded, as well as any indication whether the user read orclicked a link to any forum 266.

Identify Ad(s) and Record any Clicks, Forum Reads, Forum Posts.

FIG. 3 is a flowchart illustrating a method for identifying anddisplaying advertisements likely to be clicked on by users creatingand/or viewing the pages of books as described in FIG. 2 according toone embodiment of the present invention. Referring now to FIG. 3, anynumber of category groupings, synonym groupings, and/or related wordsgroupings are received and stored 310. In one embodiment, such groupingsmay be received as word tables that are helpful in identifying possibleuser interests or subjects that users may be interested in, as well asuser emotions and/or moods. Examples of categories or category groupingsmay include “Things People Say When They Are Happy Or Excited” or “WordsPeople Use When They Are Sad” or “Things Athletes Say.” Such groupingsinclude words and phrases that correspond to a user's interests,emotions and/or moods. Synonym tables may include tables that listsynonyms for category words or words included in category groupings.Related words groupings are groups of words related to a topic. Forexample, a table for words related to sports may include words such as“net,” “ball,” “racquet,” “sneakers,” “team,” and/or any othersport-related words. The process of receiving category, synonyms and/orrelated words groupings may be an independently operating process asshown by the dashed lines in the Figure.

Receive Ad(s)/Categories for Ad(s).

At any time, any number of advertisements may be received fromadvertisers, along with any number of categories or category words thatcorrespond to such ads 312. In one embodiment, possible category wordscorresponding to ads may be provided to ad providers as words thatdescribe the users or types of users most likely to click on such ad,and ad providers may select the category words that apply to specificad(s) from the choices offered. In one embodiment, category wordsdescribing ads may generally match or be mapped to category words thatare associated with photos as described above with reference to FIG. 2.In one embodiment, the categories may include interests, emotions andmoods. For example, an ad may appeal to someone who is sad about theirpet, and so the advertiser would indicate an interest category of “pet”and a mood or emotion category of “sad”. The process of receivingadvertisements and/or category words corresponding to advertisements maybe an independently operating process as shown by the dashed lines inthe Figure.

Segregate and Identify Recent Actions; Identify Scores for Make/Read:Same Photos/Same Photo Categories, Same/Similar Tags, Text, Words, WordCategories; Read: Finish, Like, Comment.

Using any, some or all of information recorded for the user and forother users when creating or viewing any books as described above withreference to FIG. 2 (e.g. tags for pages and/or books created or viewed,categories of photos or books, text words entered in books), as well asany user ad preference information, such as any recorded clicks onadvertisements (e.g. any clicks recorded at step 246 and/or step 256 ofFIG. 2), other users are segregated into a group of segregated users orother users that are easily and quickly identifiable as similar to theuser 314. For example, in one embodiment, other users that are includedin the segregated users group may be other users whose recent actionsindicate that they have created or read the same book as the user, orcreated or read one or more books with the same title as the user, orcreated or read one or more books with a similar title as the user, orany other method may be used to segregate the group of scored users. Toidentify the group of segregated users, the most recent actions of theuser may be identified, and such recent actions may be compared to therecent actions of other users. In one embodiment, the number ofsegregated users for a user is limited to an upper limit bound such as1000 of the closest identifiable users. Users are considered to becloser to a user if they read the same book than they are if they read abook with a similar title. Users who created books with the same orsimilar title are considered to be more similar than users who read abook with the same or similar title as another user. Users who read allpages of a book are considered to be more similar than users who didnot, and users who did not read all pages of a book are considered to bemore similar to other users who did not than to users who read allpages.

Additionally as part of step 314, one or more similarity scores aredetermined for each segregated user relative to the user for which oneor more ads are being identified, including a photo categories score,similar tags score, text words score, word categories score,finish/like/comment score, and any other similarity scores. In oneembodiment, recent actions of users may be used to determine similarityscores or all previous actions may be used, or any other group ofprevious actions may be used. Similarity scores may be any scores thatindicate a level of similarity between a segregated user and theselected user based on any similarity criteria, including any photos orcategories of photos used or viewed by each user, any tag wordsincluding photo tags or other tags used or viewed, any text words usedor viewed, or any other words, such as words used in comments, as wellas any information corresponding to books read and/or liked and/orcommented on by each user, or any other information recorded for eachuser.

In one embodiment, a segregated user that has viewed a higher number ofsimilar photos as the user, including the same photos as the user orphotos from the same or similar photo categories as the user, may beassigned a higher photo categories score than a user that has viewedfewer similar photos as the user. Additionally, if a segregated user hasincluded one or more of the same or similar photos in his/her book(s) asany photos included in book(s) made by the user, then such segregateduser may receive a higher photo categories score than a segregated userthat has not included similar photos or a segregated user that has onlyviewed similar photos as the user.

A higher tag words score may be assigned for a segregated user that usesmany of the same or similar tag words for photos or books or any othertags as the selected user than another segregated user that uses fewersimilar tag words. A higher text words score may be calculated for asegregated user that writes or reads many of the same words whencreating books or viewing books as the selected user than anothersegregated user who writes or reads few of the same text words. Thesynonym table may be used to identify similar words.

Similarity scores may also be determined by the level of interestdemonstrated by each user in any subject in which both users demonstratesome interest. For example, creating or making similar books on the samesubject may indicate a higher level of similarity between the two usersthan if the user made a book on the subject and the segregated user onlyviewed a book and did not make a book on the same subject. The relatedwords table may be used to identify words used in tags or titles or textthat are of a similar subject.

Weight Scores, Multiply Scores by Weight, and Identify Similarity Score.

Weights are assigned for each similarity score, similarity scores aremultiplied by their corresponding weights, and the weighted scores areused to determine a total similarity score for each segregated user 316.In one embodiment, initial weights assigned to similarity scores may beequal, and conventional regression analysis is used to determine whichfactors are highly indicative of the likelihood of a user clicking onany ad, and such analysis may be used to adjust weights accordingly fromtime to time.

Identify Advertisements with Highest Clickthrough Rates by Other Userswith High Similarity Scores.

Ads, such as the ads with the highest clickthrough rates by segregatedusers with high similarity scores, or ads which have been mostfrequently clicked on by users that are very similar to the selecteduser, are identified for the selected user 318. To identify ads with thehighest clickthrough rates by users with high similarity scores, a scorebucket for each advertisement may be used to accrue similarity scores.In one embodiment, a segregated user's similarity score (relative to theuser) is added to each score bucket corresponding to ads that thesegregated user has clicked on. Ads corresponding to score buckets withthe highest similarity score are identified as ads to display based onsimilarity with the user for which one or more ads are being identified.

Identify Other Ads Using Ad Category, Words in Actions, Categories ofPhotos.

In one embodiment, not only are ads identified using users with similarinterests, emotions and/or moods, but advertisements may be alsoidentified that only match the advertiser-supplied categories with theusers interests, emotions and/or moods. Either or both types ofadvertisements may be displayed to the user. If only one advertisementis displayed to the user, the advertisement may be selected at randomfrom those identified as described herein.

Additional advertisements are identified 320 for the user using categorywords corresponding to ads received as part of step 312 and relatingsuch words to words used or identified in actions of the user 320. Inone embodiment, the words used or identified in actions of the userinclude words the user provided or viewed during the process of makingor viewing books, such as any text provided or viewed, or any tag wordsfor pages created or viewed, as well as any category words, synonymsand/or related words corresponding to the words used in actions by theuser. Category words corresponding to ads received as part of step 312may be compared with any category words, synonyms and/or related wordsidentified from words used in actions by the user to identifyadvertisements likely to appeal to the user. In one embodiment, adscorresponding to category words that match words corresponding to recentactions of the user may be identified as more likely to be clicked on bythe user than ads corresponding to category words that do not matchwords from the user's recent actions. In one embodiment, similar orrelated words may be identified from the user's words in action usingthe category, synonym, and related words groupings information receivedas part of step 310. Ads identified for the user in such a manner usingcategory words may include ads not previously identified for the user aspart of step 318, such as any new ads or ads with lower clickthroughrates that are likely to clicked by the user or any other ads.

In one embodiment, a level of interest demonstrated by the user throughthe user's recent actions may also be used in identifying ads mostlikely to be clicked on by the user. The user's level of interestcorresponding to a category identified in the action(s) of the user maybe determined by the type of action and/or the number of actions thatsuch user makes corresponding to such word. Creating or making a pagecorresponding to a category may indicate a higher level of interest thanjust viewing a page corresponding to that category. Commenting on a bookassociated with a category may indicate a higher level of interest thanonly viewing the book, viewing multiple books associated with a categorymay indicate a higher level of interest than viewing only one bookassociated with the category, reading a whole book associated with acategory may indicate a higher level of interest than viewing only someof the whole book, and/or taking more of any actions indicating aninterest in a category may indicate a higher level of interest thantaking few or no such actions. For example, a user that views every pageof a thirty page book that includes the tags “pets” and “animals,” wholikes the book, and comments on the book indicates a higher level ofinterest in “pets” and “animals” than a user who views only four pagesof the same book. In such a case, advertisements for dog collars and/orcat houses may be identified as most likely to be clicked on for thefirst user and not for the second user.

As described herein, books of pages, and an extra page at the end, aredisplayed to the user upon creation and upon viewing, and advertisementsare identified and also displayed to the user. Commands that will causethe various pages and advertisements to be rendered are identified inless than a few seconds, so that books may be created and viewed quicklyand advertisements are updated rapidly as additional information isdiscovered about each user's interests, emotions and moods. There may beany number of users who use the system and method of the presentinvention.

The code for authoring a page of a book is shown in Appendix A accordingto one embodiment of the present invention. The code for viewing a pageof a book is shown in Appendix B according to one embodiment of thepresent invention. Other methods of coding such application may be used.In one embodiment, the code used is HTML5 code to be used to allowviewers to view the books from any browser.

System.

FIG. 4 is a block schematic diagram of a system for receivingspecifications for, and providing rendering instructions for display ofan online book and advertisements according to one embodiment of thepresent invention.

FIG. 5A is a block schematic diagram of representative server system 420of FIG. 4 shown in more detail according to one embodiment of thepresent invention.

FIG. 5B is a block schematic diagram of a representative server admanager 550 of FIG. 5A shown in more detail according to one embodimentof the present invention.

FIG. 6 is a block schematic diagram of a representative user device 410of FIG. 4 shown in more detail according to one embodiment of thepresent invention.

Referring now to FIGS. 4, 5, and 6, in one embodiment, the system ofFIG. 4 contains any number of user devices 410, a server system 420, andthird party servers 440, though other arrangements may be used. Userdevices 410, server system 420, and third party servers 440 operate asdescribed herein, and each system 410, 420, and each include arespective communication interface 606, 506, (not shown in the thirdparty servers 440), each of which may include a conventionalcommunication interface running suitable communication protocols, suchas Ethernet, TCP/IP or both. In one embodiment, unless otherwise notedherein, all communications in and out of the user devices 410 and serversystem 420 are made via input/output (not shown) of the communicationinterface of third party servers 440, input/outputs 507, 508 ofcommunication interface 510, and input/output 608 of communicationinterface 610, the inputs/outputs of all systems coupled to network 430,which may include a conventional Ethernet network, the Internet or both.

A user communicates with server system 420 using user device 410, whichmay include a conventional personal computer system with a conventionalbrowser coupled to the Internet using suitable communicationstechniques, or a conventional wireless communication device, such as acell phone or a tablet computer, running a conventional browser. In thecase of a cell phone or tablet, the user may download an application tothe device 410 using device download manager 512, which may include an“app store” or “market” coupled to the Internet using suitablecommunications techniques. The user may download the application in aconventional manner via download manager 512, such as by purchasingand/or selecting the application at an online mobile application store.

The user registers at server system 420 using the user device 410. Theuser may either use the downloaded application to perform actionsdescribed herein, or the user may use a browser on the user device 410.In one embodiment, server log in/registration manager 516 provides a webpage including one or more links to indicate one or more actions, suchas a link to register or log in. In one embodiment, if the user isregistering via the mobile application, device log in/registrationmanager 616 provides the buttons or links or other user interfaceelements to allow the user to indicate actions, and device login/registration manager 616 relays any information received from theuser to the server log in/registration manager 516 and vice versa.

If the user provides an indication to register an account, such as byclicking the link or button provided, server log in/registration manager516 provides one or more web pages containing suitable user interfaceelements to allow the user to provide registration information,including a user identifier and password, biographical information,social network identifier(s), and any other registration information, asdescribed above. The user provides such information, and server login/registration manager 516 receives the information and stores suchinformation in server user information storage 518 associated with theuser identifier. All storage elements described herein such as serveruser information storage 518 may include conventional memory and/or diskstorage.

If the user provides registration information via the mobileapplication, device log in/registration manager 616 receives theregistration information from the user, internally stores it, andforwards the received registration information to server login/registration manager 516 with the user's user identifier or a deviceidentifier. Server log in/registration manager 516 receives theregistration information described above, either directly from the useror via device log in/registration manager 616, and stores theregistration information in server user information storage 518. Serverlog in/registration manager 516 may receive registration informationfrom any number of users at any time.

Other elements of user device 410 communicate with elements of server420 in a similar fashion so that users can interact with the servereither via the mobile application or via a browser. When using anelement of the mobile application, the element provides the userinterface.

Any registered user may log in to server system 420 using conventionallog in methods at any time, either directly through server login/registration manager 516, such as via one or more web pages providedby server log in/registration manager 516, or through server login/registration manager 516 via device log in/registration manager 616.In one embodiment, the user provides the user identifier and passwordpreviously registered above and presses the log in link or button on theuser interface provided. Server log in/registration manager 516 receivesthe user log in and may store a cookie on the user's computer, includingthe user identifier, and such cookie may be retrieved by other elementsof the system described herein to identify the user or device login/registration manager 616 stores the user identifier internally andmakes it available to other elements of the user device 410.

Once the user is logged in, the user may provide an indication to createa new book, such as by pressing a create new book link or buttonprovided. Server new book manager 522 receives the create new bookcommand and provides one or more web pages containing suitable userinterface elements to allow the user to provide new book information,including any book title and/or book tags, as described above. The userprovides the new book information, and server new book manager 522receives it and stores it in server book storage 524 associated with theuser identifier and a book identifier. In one embodiment, server newbook manager 522 retrieves the user identifier with the cookie stored onthe user's computer or other device.

In one embodiment, the create new book command may be received at theuser's user device 410 by device new book manager 622, and device newbook manager 622 may provide the user interface to allow the user toprovide, and device new book manager 622 to receive, the new bookinformation as described above. Device new book manager 622 may forwardsuch information received from the user to server new book manager 522along with the user identifier or a device identifier.

The web page(s) provided by server new book manager 522 may also includea button or link to add a new page which signals server new page manager526. When the user clicks the add new page button, server new pagemanager 526 provides a web page containing suitable user interfaceelements to allow the user to select a photo source as described above.In one embodiment, the web page provided by server new page manager 526may include one or more links corresponding to one or more options, suchas an upload photo link, a choose social network photo link, a searchfor photo using search term link, which may include a user interfaceelement, such as a text field, allowing the user to provide a searchterm or the text to be used on the photo and submit the search term orother text by pressing the link, a supply a URL text box, a no photolink, or any number of other photo source links or other user interfaceelements that perform the functions described above. In one embodiment,server new page manager 526 may identify the user via the cookie(s)stored on the user's computer or device as described above, and servernew page manager 526 may retrieve the book and page identifiers mostrecently stored corresponding to such user identifier in server userinformation storage 518. As described herein, any elements may identifythe current and/or most recent book(s) and/or page(s) of books(s)created by the user (or read by the user as described in more detailabove and below) in a similar manner. If the user has supplied text,server new page manager 526 stores the text in server book storage 524.

In one embodiment, device new page manager 626 may receive theindication to add a new page via a user interface element provided bydevice new book manager 622 or device new page manager 626 on the mobileapplication, and device new page manager 626 provides the user interfaceto allow the user to select a photo source. Device new page manager 626forwards any information received from the user to server new pagemanager 526 with the user identifier corresponding to the user fromwhich information is received, and device new page manager 626 displaysany information received from server new page manager 626 in response.

In one embodiment, if the user selects the option via the link not toinclude a photograph, such as by clicking the no photo link, server pagespecification manager 540 receives the click, and displays the text box,described above and below, over a default blank photo or no photo.

If the user selects the option to upload or identify the URL or otherlocation of a photo as described above, such as by clicking the uploadphoto link, server photograph manager 530 receives a requestcorresponding to the click and provides a suitable user interface, suchas a conventional uploading tool or a text box, or a bookmarklet asdescribed above, to allow the user to provide the location of the photo.The user provides the location of the photo using the uploading tool ortext box, server photograph manager 530 uploads or retrieves the photoas specified by the user and stores the photo in server book storage 524associated with the user identifier, book identifier and a pageidentifier, and server photograph manager 530 signals server pagespecification manager 540. In one embodiment, server photograph manager530 may store the location of the photo or the photo or both. In oneembodiment, the user may upload the photo using the mobile applicationvia device photograph manager 630, and device photograph manager 630forwards any information received from the user, and optionally, thephoto itself, to server photograph manager 530 with the user's useridentifier.

Device photograph manager 630 also provides user interface elements toallow the user to specify a photo via a search or to retrieve a photofrom a social network via buttons that signal device photo searchmanager 632 or device photo retrieval manager 634, respectively.

If the user selects the option via the link to choose a photo from theuser's social network, such as by clicking the choose social networkphoto link or button, server photo retrieval manager 534 receives arequest corresponding to the click and logs in to the user's socialnetwork using social network information received from the user andstored associated with the user identifier in server user informationstorage 518 and retrieves social network photos as described above.Server photo retrieval manager 534 displays the retrieved social networkphotos, as described above, along with user interface elements to allowthe user to select a displayed photo, such as by clicking on the photoor clicking on a thumbnail of the photo. In one embodiment, theretrieved photos may be displayed as a grid of photos or thumbnails ofphotos, and the photos may be displayed such that photos more likely tobe selected by the user are displayed first, as described above. Theuser selects a photo from the social network photos displayed, andserver photo retrieval manager 534 receives the user photo selection andstores the selected photo in server book storage 524 along with the useridentifier, book identifier and a page identifier. Server photoretrieval manager 534 may also retrieve any title information and/or taginformation and/or other information associated with the retrieved photoand store such information associated with the photo in server bookstorage 524.

In one embodiment, device photo retrieval manager 634 provides the userinterface to allow the user to choose a social network photo asdescribed above, and device photo retrieval manager 634 relays anyinformation from the user to server photograph manager 530, and viceversa, with the user's user identifier.

If the user selects the option to search for a photo from one or morephoto databases using a search term, such as by providing a search termor the text to be displayed with the photo as described herein andclicking the search for photo link, server photo search manager 532receives the search term or text and identifies photographscorresponding to the search term or text, as described above, orders anddisplays the identified photos from more likely to be selected by theuser to less likely to be selected by the user, as described above. Theuser selects a photo as described above, server photo search manager 532receives any user photo selection, and stores the selected photo inserver book storage 524 associated with the user identifier, bookidentifier and a page identifier. In one embodiment, server photo searchmanager 532 stores the received search term or text corresponding to thephoto in server book storage 524 associated with the photo, and may alsoretrieve any tags associated with the selected photo and store such tagsassociated with the photo in server book storage 524.

In one embodiment, the user may provide the indication and search termor text to be displayed to device photo search manager 632 using themobile application and device photo search manager 632 may display thephoto selection grid of photos matching the search terms or text anduser interface elements to the user on the user's mobile device. Devicephoto search manager 632 relays information from the user to serverphoto search manager 532, and vice versa, with the user's useridentifier.

In one embodiment, any search performed by the user, including anysearch terms or text provided by the user, may be recorded as a useraction in server user information storage 518 associated with the useridentifier.

When server photograph manager 530 has uploaded and stored the user'sphoto selection or received an indication no photo will be used, or whenserver photo retrieval manager 534 or server photo search manager 532has received and stored the user's photo selection, the element storingthe photograph signals server page specification manager 540.

Server page specification manager 540 receives the signal and displaysany selected photo for the page and displays a shaded text box over theselected photo (or blank or colored page if no photo), including anytext received from the user, and the user interface controls to changethe size and location of the text box as described above. To display theselected photo and text box, server page specification manager 540 mayidentify the user's user identifier via the cookie stored on the user'sdevice, and identify the book identifier and page identifier mostrecently stored associated with the user identifier in server userinformation storage 518. In one embodiment, server page specificationmanager 540 retrieves the photo and any text stored in association withsuch book identifier and page identifier in server book storage 524, andserver page specification manager 540 displays the retrieved photo, aswell as any text, if such text has been received from the user andstored, as described above.

Server page specification manager 540 also displays user interfacecontrols to change the size, font, style, justification, color, andopacity of the text, as described above, the color and opacity of thetext box background, or select one of several default settings of suchcontrols, as described above, and other commands, such as a “next” or“add page” command, as described above. When the user adds any text ormakes any changes to any text on the page using the text box provided,server page specification manager 540 receives such text or changes anddisplays such text and changes instantly or near-instantly to the user.If the user provides an indication to move on to the next step, such asby pressing the “next” button, server page specification manager 540receives such indication and may prompt for any page tags and/or pageorder information for the current page. In one embodiment, server pagespecification manager 540 renders or generates a new image whichdisplays the selected photo with the finalized set of modifications tothe photo, text box, and any text corresponding to the selected photo asthey have been received from, and displayed to, the user. Server pagespecification manager 540 stores the newly rendered image correspondingto the page just completed in server book storage 524 as page dataassociated with the user identifier, book identifier and page identifiercorresponding to such page. In one embodiment, server page specificationmanager 540 may store other or additional page data corresponding to thepage in server book storage 524, including any display information suchas the location coordinates and size of the text box and any text and/ortext formatting information corresponding to the text box as describedabove.

In one embodiment, server page specification manager 540 provides userinterface controls to allow a user to select one of several templatesthat contain predefined values of the settings described above that areinternally stored by server page specification manager 540. If the userselects one of the templates, server page specification manager 540 usesthe predefined values of the settings from the selected template asinitial values for such settings, though the user may change them asdescribed herein.

Server page specification manager 540 may also provide suitable userinterface elements to allow the user to provide any page tags, as wellas the page order of the selected page relative to the book. The userprovides such information, which server page specification manager 540receives and stores associated with the user identifier, book identifierand page identifier in server book storage 524. The user may indicate todefine a next page of the book, such as by clicking a “next” buttonprovided by server page specification manager 540, or the user mayindicate that he/she is done creating the book, such as by clicking a“finished” button provided by page specification manager 540. In oneembodiment, the “next” button signals server ad manager 550, and the“finished” button signals server book completion manager 540.

When signaled, server ad manager 550 identifies one or more ads that arelikely to be clicked on by the user, as described in more detail aboveand below, and provides such ads to server page specification manager540, which receives the ads and displays the ads as described above.Server page specification manager 540 stores any click or clicks on anydisplayed ad(s) in server user information storage 518, and server pagespecification manager 540 may also record which ads are shown to theuser and how many times any ad is shown to the user even if the userdoes not click on it, as described above. When server page specificationmanager 540 has displayed the ads identified for the user and recordedany clicks as described above, it signals server new book manager 522,and server new book manager 522 adds a new page and receives a new photosource selection for the new page and repeats the procedure as describedabove.

When server book completion manager 540 receives a click on the“finished” button, server book completely manager 540 generates andprovides to the user a book link for the completed book, including RESTinformation, and stores the generated link and/or REST information inserver book storage 524 associated with the user identifier and bookidentifier. REST information is the information to the right of theslash after the top level domain name in the URL.

In one embodiment, if the user is creating the page using the mobileapplication, device page specification manager 640 displays the selectedphoto, overlaid shaded text box, and user interface controls similar oridentical to those described above, and device page specificationmanager 540 receives and instantly or near-instantly displays the bookpage resulting from any text and/or changes and/or commands receivedfrom the user via the mobile application. In one embodiment, device pagespecification manager 640 sends page data corresponding to a new page toserver page specification manager 540, along with the user's useridentifier, when the user indicates that he/she is done editing a pageas described above. Server page specification manager 540 renders theimage using the received page data and saves the rendered image and thepage data corresponding to the page as described above.

Device page specification manager 640 signals device ad manager 650,which requests and receives ads (e.g. those selected for the user asdescribed herein) ads as described in more detail above and below fromserver ad manager 550 and displays such ads to the user. Device admanager 650 receives user clicks on such ads, and transfers the user toa web page corresponding to such ad via a browser, not shown, on theuser device and a URL received from server ad manager 550, associatedwith the ad. In addition, device ad manager 650 indicates the clicks andthe user identifier of the user who clicked on the ad to server admanager 550, which stores such information and the date and time inserver user information storage 518.

If the user completes the book using the mobile application and providesan indication of such, device book completion manager 642 provides theindication to server book completion manager 542, which receives it andgenerates and stores the link to the book as described above andprovides it to device book completion manager 642, which displays it tothe user.

At any time, server book display manager 562 may receive any number ofrequests to view any number of books from any number of users. Whenserver book display manager 562 receives a request to view a book, itattempts to identify the user requesting the book, such as by usingconventional cookie techniques. In one embodiment, the user may be aregistered user or an unregistered user. If the user is a registereduser as described above and logs in using conventional log in techniquesand a registered user identifier and password, server login/registration manager 516 receives the user log in and stores a cookieincluding the received user identifier on the user's device. If the useris not logged in as a registered user, server log in/registrationmanager 516 may retrieve an unregistered user identifier usingconventional cookie techniques, or if no such cookie is available,server log in/registration manager 516 may store cookie informationincluding an unregistered user identifier on the user's computer.

In one embodiment, server log in/registration manager 516 providessuitable user interface elements, such as a text field and a search linkspecifying server book search manager 560, to allow a user to search fora book using one or more search terms. When the user provides the searchterms and clicks the link, server book search manager 560 receives theclick and the search terms from the user and identifies books in serverbook storage 524 with titles, text, and/or tags that most closely matchthe received search terms or synonyms of the received search terms, asdescribed above. Server book search manager 560 generates any number oflinks that each cause the user's browser to request a specific book frombook display manager 562, such as any books identified as closelymatching the user's search terms. In one embodiment, the user may clicka link provided by server book search manager 560 to request a book, orthe user may request a book from book display manager 562 by pasting orentering a link into the user's browser.

In one embodiment, if the user searches for a book and/or requests abook using the mobile application, then device log in/registrationmanager 616 provides user interface elements to such requests andsignals device book search manager 660 which provides the user interfaceto search for the book as described above. Device book search manager660 receives any search terms provided by the user and forwards any suchinformation to server book search manager 560 which performs the searchas described above and returns the results to device book search manager660, which displays them as a series of links and descriptions, andoptionally one or more pages from the book. If the user clicks adisplayed link, device book search manager 660 indicates the bookcorresponding to the selected link to device book display manager 562.Device book display manager 662 receives any requests to view a book andforwards the received request to server book display manager 662.

Server book display manager 562 receives the request to view a book,including a book identifier corresponding to the requested book, andserver book display manager 562 provides the book identifier and a pageidentifier to server page display manager 554, which receives the bookidentifier and page identifier and provides page data, such as the imagerendered and stored associated with the received book identifier andpage identifier in server book storage 524 or other page informationsuch as HTML code to instruct the user's browser to render the pagecorresponding to the received book identifier and page identifier if thepage has been requested using a browser.

Or if the page is requested by the user via the mobile application,server page display manager 554 provides the page data, which mayinclude the rendered image and/or other rendering instructions specificto the mobile application, corresponding to the requested page, as wellas any other page information corresponding to the requested page, todevice page display manager 664, which receives the page data, storesthe page data in device book storage 614 associated with the bookidentifier and page identifier and displays the received rendered imageor renders the image using the received rendering instructionsassociated with the requested page as described above. The user'sbrowser or mobile application displays the requested page including thetitle, image, overlying text, and any navigation user interface controlscorresponding to the selected page as described above.

Additionally, server page display manager 554 signals server ad manager550 to identify ads identified for the user viewing the displayed pageas described above. In one embodiment, server page display manager 554signals server ad manager 550 with the user identifier corresponding tothe user viewing the page. Server ad manager 550 receives the signal anduser identifier and server ad manager 550 identifies ads for the user asdescribed in more detail above and below. Server ad manager 550 providesone or more ad identifiers corresponding to ad(s) identified for theuser viewing the page as described above and below to server pagedisplay manager 554.

Server page display manager 554 receives any ad identifier(s)corresponding to ad(s) identified for the user from server ad manager550, and server page display manager 554 retrieves the HTML and/or anyother data corresponding to the received ad identifier(s) in serveradvertisement storage 568 and provides commands to the user's browser torender the ads identified for the user. Any ad information including anyHTML and/or any other rendering data or other data corresponding to anyads may be stored in server advertisement storage 568 as described inmore detail above and below.

In one embodiment, if the user is using the mobile application to viewthe page as described above, each time it displays a page or receives apage definition, device page display manager 654 signals device admanager 650 to identify ads for the user as described above, and devicead manager 650 receives such signal and forwards the signal to server admanager 550 with the user identifier or device identifier correspondingto the user and/or device viewing the page via the mobile application.Server ad manager 550 receives the signal and user identifier fromdevice ad manager 650, identifies the ad(s) in the manner describedabove and below, and provides rendering information to render the ad itidentifies for the user to device ad manager 650, which receives the adand provides the ad rendering information to device page display manager654.

Each time it identifies one or more ads, server ad manager 550 stores inuser information storage 510 identifiers of such ad, the user for whichit identified the ad, and the date and time.

The user's browser displays any such ads identified for the user, ordevice page display manager 554 may display the ad(s) identified for theuser on the user's device as described above.

Server page display manager 554 stores a record of the book and the pageviewed by the user in server user information storage 518 associatedwith the user identifier corresponding to the viewing user. In oneembodiment, if the mobile application is used to view the page, devicepage display manager 554 records the book and page viewed and forwardssuch information to server page display manager 554, with the viewinguser's user identifier, and server page display manager 554 records suchinformation in server user information storage 518 as described above.In one embodiment, the user identifier used to identify the user viewingthe displayed page as well as any ads identified for the user may be aregistered user identifier or an unregistered user identifier asdescribed above.

When the user's browser or mobile application has displayed the page andany ads identified for the user, the user may make any number ofactions, such as clicking on any ads displayed, or clicking any of thenavigation buttons provided. If the user clicks on any displayed ad orads, server page display manager 554 receives such clicks (via devicepage display manager 664 if the user is using the mobile application),and server page display manager 554 records such clicks in server userinformation storage 518 associated with the user's user identifier,which may be a registered user identifier or unregistered useridentifier as described above. In one embodiment, a click on a displayedad may be recorded with the ad identifier corresponding to the adclicked and the current date and time.

Server page display manager 554 may also receive (via device pagedisplay manager 664 if the user is using the mobile application) anynavigation command clicked by the user. When server page display manager554 receives a navigation command from the user, it selects the next orprevious page to display based on the navigation command received andanimates a flip to the next or previous page based on the commandreceived, as described above. In one embodiment, if the user is usingthe mobile application, device page display manager 654 checks for pagedata corresponding to the selected next or previous page in device bookstorage 614. If the selected next or previous page is not available indevice book storage 614, device page display manager 654 requests andreceives page data corresponding to the selected page from server pagedisplay manager 554, stores the received page data in device bookstorage 614 associated with the book identifier and page identifier, andrenders and/or displays the selected page on the user's user device 410.Device page display manager 654 may also request from server pagedisplay manager 554, receive from server page display manager 554, andstore in device book storage 614 page data corresponding to the nextpage after the currently displayed page of the selected book. In oneembodiment, server page display manager 554 may send page datacorresponding to the last page of a book with an indication of such, anddevice page display manager 654 may receive such indication with thepage data and will not request a subsequent page if such last page isstored the device as described above.

If server page display manager 554 determines that the selected nextpage is not past the last page of the selected book, such as if the pageorder or number corresponding to the selected next page is not greaterthan the total number of pages of the selected book, then server pagedisplay manager 554 renders the selected next page as described above.

If server page display manager 554 determines that the selected nextpage is the last page of the selected book as described above, thenserver page display manager 554 signals server last page display manager556, which receives the signal and displays biographical informationcorresponding to the author of the selected book, as well as any linksto other books created by the same author and any forums correspondingto the book, as described above.

If the user is using the mobile application, server last page displaymanager 556 may send page data including instructions to display authorbiographical information and any links to other book(s) or forum(s), asdescribed above, to device last page display manager 656, which receivesand displays such last page data as described above.

Server last page display manager 556 signals server ad manager 550 (ordevice last page display manager 556 signals device ad manager 650,which signals server ad manager 550) to identify ads for the userviewing the book as described above. Server ad manager 560 receives thesignal, identifies the ads for the ads as described above, and providesthe ad identifier(s) corresponding to the identified ads to server lastpage display manager 556 (or to device ad manager 650, which providesthe ad identifier(s) to device last page display manager 656). Serverlast page display manager 556 receives such ad identifiers, retrievesthe HTML or other rendering instructions corresponding to such adidentifier(s) from server advertisement storage 568 and provides suchHTML or other rendering instructions to the user's browser, if the useris viewing the last page via the user's browser, or to device last pagedisplay manager 656, if the user is viewing the last page via the mobileapplication. The user's browser or mobile application displays thereceived ad(s) as described above.

Once server last page display manager 556 or device last page displaymanager 656 has displayed the author biographical information, links toother book(s) and forum(s), and ads identified for the user as describedabove, the user may make any number of actions, such as clicking on anyads displayed, or clicking any of the displayed links to other books orto the forum, or commenting via the forum, or any other actions. If theuser makes any user actions, server last page display manager 556records such user actions in server user information storage 518associated with the user's user identifier, which may be a registereduser identifier or unregistered user identifier as described above andthe date and time. In one embodiment, if the user is using the mobileapplication, device last page display manager 656 receives the actionsfrom the user and provides the actions to server last page displaymanager 556. Forums may be operated conventionally via server last pagemanager 556, optionally via device last page manager 656.

At any time, server relationship manager 570 may receive categories,synonyms, and/or related words tables as described above, such as from asystem administrator, and server relationship manager 570 stores anysuch information in server database storage 572.

Also at any time, server advertiser manager 574 may receive any numberof advertisements from any number of ad providers. In one embodiment,server advertiser manager 574 receives an ad as instructions or commandsfor displaying the ad, such as the HTML to render the ad and/or anyother ad data. Server advertiser manager 574 also receives each ad withone or more corresponding category word or words as described above, andserver advertiser manager 574 stores each ad in server advertisementstorage 568 associated with the corresponding category word(s) and aunique ad identifier.

In one embodiment, when server ad manager 550 receives a user identifierand signal to identify ads using the received user identifier asdescribed above, server segregation manager 576 receives the useridentifier and signal. Server segregation manager 574 identifies recentactions made by the selected user and segregates a group of similarusers for the selected user as described above. In one embodiment,server segregation manager 574 identifies any number of recent actionscorresponding to the received user identifier in server user informationstorage 518, including the book and page identifiers corresponding toany books and/or pages recently created or viewed by the selected useras described above. To identify the segregated group of other userssimilar to the selected user as described above, server segregationmanager 574 may identify other user identifiers (registered and/orunregistered user identifiers) in server user information storage 518for which recent actions similar to the selected user's recent actionsare recorded as described above.

When server segregation manager 576 has segregated the group of similarother users for the selected as described above, it provides the useridentifier corresponding to the selected user and other useridentifier(s) corresponding to any similar other users identified toserver score calculation manager 578. To provide the selected useridentifier and other user identifiers, server segregation manager 576may build a similar users table including the user identifier of theselected user and one or more other user identifiers corresponding toeach other user identified as a similar other user for the selecteduser. In one embodiment, server segregation manager 576 stores thesimilar users table in server advertisement storage 568 associated witha unique ad identification serial number, and sends the adidentification serial number to server score calculation manager 578.

Server score calculation manager 578 receives the ad identificationserial number from server segregation manager 576, and server scorecalculation manager 578 calculates one or more similarity scores, asdescribed above with respect to step 314 of FIG. 3, for each of theother users identified as similar to the selected user. To calculate thesimilarity scores as described above, server score calculation manager578 identifies the similar users table associated with the received adidentification serial number in server advertisement storage 568 andretrieves from server user information storage 518 any recent actionscorresponding to the selected user identifier included in the similarusers table, including the type of each action as well as any tag words,photo categories, page text, etc., corresponding to such actions asdescribed above, as well as the recent actions corresponding to eachother user identifier included in the similar users table. Server scorecalculation manager 578 compares the recent actions identified for theselected user with the recent actions identified for each of the otherusers included in the similar users table to calculate the similarityscores as described above. Server score calculation manager 578 storeseach similarity score calculated for each other user included in thesimilar users table in server advertisement storage 568 associated withthe other user identifier for which the score was calculated and thetype of the similarity score, and sends the ad identification serialnumber corresponding to the similar users table to server combined scoremanager 580.

Server combined score manager 580 receives the ad identification serialnumber, and server combined score manager 580 assigns weights to eachtype of similarity score included in the similar users tablecorresponding to the received ad identification serial number in serveradvertisement storage 568 as described above. In one embodiment, servercombined score manager 580 uses regression analysis to maximize thelikelihood of clicks on ads to assign the weights and stores theassigned weights in the similar users table in server advertisementstorage 568. Server combined score manager 580 multiplies eachsimilarity score calculated for each other user in the similar userstable with its assigned weight and sums the weighted scores for eachother user to identify a final similarity score for each other user withrespect to the selected user as describe above. When server combinedscore manager 580 has calculated a final similarity score for each otheruser identifier included in the similar users table, it stores the finalsimilarity score for each other user in the similar users table andsends the ad identification serial number corresponding to the similarusers table to server similar user ad manager 582.

Server user ad manager 582 receives the ad serial number and identifiesads likely to be clicked on by the selected user corresponding to the adserial number, including the ads with the highest clickthrough rates byother users similar to the user as described above. To identify adslikely to be clicked by the selected user, server similar user admanager 582 retrieves from server user information storage 518 anyclicks information, including the ad identifier corresponding to any adwhich received a click by a user, recorded corresponding to each otheruser identifier included in the similar users table corresponding to thereceived ad serial number. In one embodiment, server similar user admanager 582 identifies any number of ads receiving one or more clicksfrom a similar other user included in the similar users table,initializes an ad bucket for each such ad (e.g. to zero), andaccumulates scores in each ad bucket such that, for each ad, the totalnumber of clicks that the ad received from similar other users includedin the similar users table is recorded, and the final similarity scoreof the similar other user or users that clicked the ad is added to thead bucket corresponding to that ad. In one embodiment, ad(s) receivingthe most total clicks and/or ad(s) with the highest scoring ad bucket(s)may be identified as ads likely to be clicked on by the selected user,as described above. When server similar user ad manager 582 hasidentified one or more ads likely to be clicked on by the selected user,server similar user ad manager 580 provides the ad identifier(s)corresponding to such identified ads to server page display manager 554or server last page display manager 556, which receives the adidentifier(s) and displays the ad(s) likely to be clicked on asdescribed above.

In one embodiment, server category ad manager 584 also identifies adslikely to be clicked on by the selected user using ad category words asdescribed above. To identify ads for the user using ad category words asdescribed above, server category ad manager 584 may identify any numberof category words using recent actions associated with the selected useridentifier in server user information storage 518 and any of thecategories, synonyms, and related words tables in server databasestorage 572. Server category ad manager 584 compares such category wordswith the category words associated with ads in server advertisementstorage 568, and identifies ads for the user as the ads associated withsimilar or matching category words as the selected user's recentactions, as described above.

When server category ad manager 584 has identified one or more ads forthe selected user, server category ad manager 584 provides the adidentifier corresponding to such identified one or more ads to serverpage display manager 554 or server last page display manager 556, whichreceives the ad identifier(s) and displays the ads as described above.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

The example code provided in the following appendices, when executed,enables performance of various operations in accordance with embodimentsdescribed above.

What is claimed is:
 1. An apparatus comprising a processor and anon-transitory memory having computer code stored therein, the computercode configured, when executed by the processor, to cause the apparatusto: receive, by a server ad manager, a plurality of advertisements,wherein each of the plurality of advertisements comprises a first set ofcategory words; receive, by a server log in/registration manager,registration information corresponding to a user, wherein theregistration information comprises a user identifier, a password, userbiographical information, and social network information, wherein thesocial network information comprises a social network identifier, asocial network user identifier, and a social network password; access,by a server page specification manager from a server user informationstorage, recorded information for the user identifier, wherein therecorded information corresponds to one or more book identifiersregarding one or more books created by the user, wherein each of the oneor more books comprises a set of images having corresponding text andattributes, and wherein the recorded information comprises book tags forthe one or more books created by the user, wherein the each of the booktags comprises (i) one or more words or phrases that correspond to atitle, photos, text, attributes, interests, emotions, moods, or acombination thereof that correspond to the book identifier, (ii) textwords entered in at least one of the one or more books, (iii) wordsassociated with user-selected photos included in any of the one or morebooks created by the user, and (iv) records of advertisements clicked bythe user during viewing of one of the one or more books created by theuser; receive, by the server page specification manager from a devicenew page manager, a command to add a new page to a particular book ofthe one or more books, wherein the particular book corresponds to thebook identifier; in response to receipt, by the server pagespecification manager, of the command to add the new page to theparticular book of the one or more books, display, by the server pagespecification manager, user interface controls comprising (v) textcontrols to change a size, a font, a style, a justification, a color,and an opacity of text to be displayed on the new page, and (vi)background controls to control a color and an opacity of a text boxbackground corresponding to the text, receive, by the server pagespecification manager from a first user device, text to be displayed onthe new page, generate, by the server page specification manager, a setof terms associated with the text based on a semantic analysis of thetext, wherein at least one term in the set of terms is not included inthe text, identify, by the server page specification manager, an imageto be displayed on the new page based on the text, the set of termsassociated with the text, and the social network information, identify,by a server category ad manager, a second set of category words based onrecent actions associated with the user identifier and one or morecategory tables, synonym tables, and related words tables stored in aserver database storage, wherein the each of the category tables,synonym tables, and related words tables comprises words or phrases thatcorrespond to interests, emotions, moods, or a combination thereof thatcorrespond to the user identifier, compare, by the server category admanager, the first set of category words to the second set of categorywords and book information regarding the particular book, identify, bythe server category ad manager, a first subset of the plurality ofadvertisements based on the comparison of the first set of categorywords to the second set of category words and the book informationregarding the particular book, identify, by a server segregationmanager, recent actions corresponding to the user identifier, identify,by the server segregation manager, other user identifiers stored in theserver user information storage, wherein each of the other useridentifiers corresponds to other recent actions above a first level ofsimilarity to the recent actions corresponding to the user identifier,generate, by a server score calculation manager, one or more similarityscores for each of the other user identifiers relative to the useridentifier, wherein the one or more similarity scores for a respectiveother user identifier indicate a second level of similarity between theother recent actions corresponding to the respective other useridentifier and the recent actions corresponding to the user identifier,wherein the one or more similarity scores for each of the other useridentifiers comprise one or more types of similarity score, and whereinthe one or more types of similarity score comprise one or more of aphoto categories score, a similar tags score, a text words score, a wordcategories score, and a finish/like/comment score, assign, by the servercombined score manager, a weight to each of the one or more types ofsimilarity score using regression analysis, generate, by the servercombined score manager, one or more weighted similarity scores for eachof the other user identifiers based on a multiplication of each of theone or more similarity scores for the respective other user identifierand the assigned weight corresponding to a respective type of similarityscore for each of the one or more similarity scores, generate, by theserver combined score manager, a total similarity score for each of theother user identifiers based on a summation of the one or more weightedsimilarity scores for the respective other user identifier, retrieve, bya server similar user ad manager from server user information storage,clicks information corresponding to each clicked advertisement in theplurality of advertisements, wherein a clicked advertisement is anadvertisement which received a click by one of the other useridentifiers, and wherein the clicks information comprises a clickthroughrate for each clicked advertisement by each of the other useridentifiers, identify, by the server similar user ad manager, a secondsubset of the plurality of advertisements comprising a subset of theclicked advertisements with the highest clickthrough rates by a subsetof the other user identifiers with the highest total similarity scores,identify, by the server ad manager, a display advertisement from theplurality of advertisements based on the first subset of the pluralityof advertisements and the second subset of the plurality ofadvertisements, wherein the display advertisement is distinct from thenew page; generate, by the server ad manager, rendering instructions fordisplay of the particular book with the display advertisement, whereinthe rendering instructions comprise page data corresponding to the newpage of the particular book; transmit, by the server ad manager, therendering instructions to a device ad manager; in response totransmission, by the server ad manager, of the rendering instructions,generate, by a server new page manager, a web page comprising userinterface elements associated with the new page of the particular book,transmit, by the server new page manager, the web page to a device newpage manager; receive, by a server book completion manager, anindication that the user is done creating the particular book; inresponse to receipt, by the server book completion manager, of theindication that the user is done creating the particular book, generate,by the server book completion manager, a link to the particular book,wherein the link comprises a URL and REST information that identifiesthe particular book, wherein the URL comprises a top level domain, andwherein the REST information comprises information to the right of aslash after the top level domain of the URL in the link, and store, bythe server book completion manager in a server book storage, thegenerated link in association with the user identifier, the bookidentifier, a page identifier corresponding to each page of theparticular book, and page data corresponding to each page identifier;and receive, by a server book display manager and from a second userdevice, a request to view the particular book, wherein the requestcomprises the book identifier corresponding to the particular book; inresponse to receipt, by the server book display manager, of the requestto view the particular book, transmit, by the server book displaymanager, the book identifier and the page identifier for a page of theparticular book to server page display manager, receive, by the serverpage display manager, the book identifier and page identifier, andtransmit, by the server page display manager and to the second userdevice, the page data corresponding to the book identifier and pageidentifier to instruct a browser of the user device to render the pagedata corresponding to the book identifier and page identifier.
 2. Theapparatus of claim 1, wherein the recorded information comprises levelof interest information.
 3. The apparatus of claim 2, wherein the levelof interest information comprises page view information.
 4. Theapparatus of claim 2, wherein the level of interest informationcomprises page creation information.
 5. The apparatus of claim 2,wherein the level of interest information comprises book categoryinformation.
 6. The apparatus of claim 2, wherein the level of interestinformation comprises book category action information.
 7. The apparatusof claim 1, wherein the computer code, when executed by the processor,is further configured to: identify, by the server page specificationmanager, actions associated with the user; and update, by the serverpage specification manager, the recorded information for the user toinclude the actions.
 8. An apparatus comprising a processor and anon-transitory memory having computer code stored therein, the computercode configured, when executed by the processor, to cause the apparatusto: receive, by a server ad manager, a plurality of advertisements,wherein each of the plurality of advertisements comprises a first set ofcategory words; receive, by a server log in/registration manager,registration information corresponding to a user, wherein theregistration information comprises a user identifier, a password, userbiographical information, and social network information, wherein thesocial network information comprises a social network identifier, asocial network user identifier, and a social network password; access,by a server page specification manager from a server user informationstorage, recorded information for the user identifier, wherein therecorded information corresponds to one or more book identifiersregarding one or more books created by the user, wherein each of the oneor more books comprises a set of images having corresponding text andattributes, and wherein the recorded information comprises book tags forthe one or more books created by the user, wherein the each of the booktags comprises (i) one or more words or phrases that correspond to atitle, photos, text, attributes, interests, emotions, moods, or acombination thereof that correspond to the book identifier, (ii) textwords entered in at least one of the one or more books, (iii) wordsassociated with user selected photos included in any of the one or morebooks created by the user, and (iv) records of advertisements clicked bythe user during viewing of one of the one or more books created by theuser; receive, by the server page specification manager from a devicenew page manager, a command to add a new page to a particular book ofthe one or more books, wherein the particular book corresponds to a bookidentifier; in response to receipt, by the server page specificationmanager, of the command to add the new page to the particular book ofthe one or more books, display, by the server page specificationmanager, user interface controls comprising (v) text controls to changea size, a font, a style, a justification, a color, and an opacity oftext to be displayed on the new page, and (vi) background controls tocontrol a color and an opacity of a text box background corresponding tothe text, receive, by the server page specification manager from a firstuser device, text to be displayed on the new page, generate, by theserver page specification manager, a set of terms associated with thetext based on a semantic analysis of the text, wherein at least one termin the set of terms is not included in the text, identify, by the serverpage specification manager, an image to be displayed on the new pagebased on the text, the set of terms associated with the text, and thesocial network information, identify, by a server category ad manager, asecond set of category words based on recent actions associated with theuser identifier and one or more category tables, synonym tables, andrelated words tables stored in a server database storage, wherein theeach of the category tables, synonym tables, and related words tablescomprises words or phrases that correspond to interests, emotions,moods, or a combination thereof that correspond to the user identifier,compare, by the server category ad manager, the first set of categorywords to the second set of category words and book information regardingthe particular book, identify, by the server category ad manager, afirst subset of the plurality of advertisements based on the comparisonof the first set of category words to the second set of category wordsand the book information regarding the particular book, identify, by aserver segregation manager, recent actions corresponding to the useridentifier, identify, by the server segregation manager, other useridentifiers stored in the server user information storage, wherein eachof the other user identifiers corresponds to other recent actions abovea first level of similarity to the recent actions corresponding to theuser identifier, generate, by a server score calculation manager, one ormore similarity scores for each of the other user identifiers relativeto the user identifier, wherein the one or more similarity scores for arespective other user identifier indicate a second level of similaritybetween the other recent actions corresponding to the respective otheruser identifier and the recent actions corresponding to the useridentifier, wherein the one or more similarity scores for each of theother user identifiers comprise one or more types of similarity score,and wherein the one or more types of similarity score comprise one ormore of a photo categories score, a similar tags score, a text wordsscore, a word categories score, and a finish/like/comment score, assign,by the server combined score manager, a weight to each of the one ormore types of similarity score using regression analysis, generate, bythe server combined score manager, one or more weighted similarityscores for each of the other user identifiers based on a multiplicationof each of the one or more similarity scores for the respective otheruser identifier and the assigned weight corresponding to a respectivetype of similarity score for each of the one or more similarity scores,generate, by the server combined score manager, a total similarity scorefor each of the other user identifiers based on a summation of the oneor more weighted similarity scores for the respective other useridentifier, retrieve, by a server similar user ad manager from serveruser information storage, clicks information corresponding to eachclicked advertisement in the plurality of advertisements, wherein aclicked advertisement is an advertisement which received a click by oneof the other user identifiers, and wherein the clicks informationcomprises a clickthrough rate for each clicked advertisement by each ofthe other user identifiers, identify, by the server similar user admanager, a second subset of the plurality of advertisements comprising asubset of the clicked advertisements with the highest clickthrough ratesby a subset of the other user identifiers with the highest totalsimilarity scores, identify, by the server ad manager, a displayadvertisement from the plurality of advertisements based on the firstsubset of the plurality of advertisements and the second subset of theplurality of advertisements, wherein the display advertisement isdistinct from the new page; generate, by the server ad manager,rendering instructions for display of the particular book with thedisplay advertisement, wherein the rendering instructions comprise pagedata corresponding to the new page of the particular book; transmit, bythe server ad manager, the rendering instructions to a device admanager; in response to transmission, by the server ad manager, of therendering instructions, generate, by a server new page manager, a webpage comprising user interface elements associated with the new page ofthe particular book, transmit, by the server new page manager, the webpage to a device new page manager; receive, by a server book completionmanager, an indication that the user is done creating the particularbook; in response to receipt, by the server book completion manager, ofthe indication that the user is done creating the particular book,generate, by the server book completion manager, a link to theparticular book, wherein the link comprises a URL and REST informationthat identifies the particular book, wherein the URL comprises a toplevel domain, and wherein the REST information comprises information tothe right of a slash after the top level domain of the URL in the link,and store, by the server book completion manager in a server bookstorage, the generated link in association with the user identifier, thebook identifier, a page identifier corresponding to each page of theparticular book, and page data corresponding to each page identifier;and receive, by a server book display manager and from a second userdevice, a request to view the particular book, wherein the requestcomprises the book identifier corresponding to the particular book; inresponse to receipt, by the server book display manager, of the requestto view the particular book, transmit, by the server book displaymanager, the book identifier and the page identifier for a page of theparticular book to server page display manager, receive, by the serverpage display manager, the book identifier and page identifier, andtransmit, by the server page display manager and to the second userdevice, the page data corresponding to the book identifier and pageidentifier to instruct a browser of the user device to render the pagedata corresponding to the book identifier and page identifier.
 9. Theapparatus of claim 8, wherein the words associated with user selectedphotos comprise titles or tags associated with the user-selected photos.10. The apparatus of claim 8, wherein the user-selected photos are drawnfrom a social media application.
 11. An advertisement selection system,the system comprising: a user device comprising: a user interface; acommunications interface configured to facilitate communications with aserver system; and a first processor configured to generate and transmitto the server system, via the communications interface, recordedinformation for a user identifier, wherein the recorded informationcorresponds to one or more book identifiers regarding one or more bookscreated by the user, wherein each of the one or more books comprises aset of images having corresponding text and attributes, and wherein therecorded information comprises book tags for the one or more bookscreated by the user, wherein the each of the book tags comprises (i) oneor more words or phrases that correspond to a title, photos, text,attributes, interests, emotions, moods, or a combination thereof thatcorrespond to the book identifier, (ii) text words entered in at leastone of the one or more books, (iii) words associated with user-selectedphotos included in any of the one or more books created by the user, and(iv) records of advertisements clicked by the user during viewing of oneof the one or more books created by the user; the server systemcomprising a second processor configured to: receive, by a server admanager, a plurality of advertisements, wherein each of the plurality ofadvertisements comprises a first set of category words; receive, by aserver log in/registration manager, registration informationcorresponding to a user, wherein the registration information comprisesthe user identifier, a password, user biographical information, andsocial network information, wherein the social network informationcomprises a social network identifier, a social network user identifier,and a social network password; access, by a server page specificationmanager from a server user information storage, the recorded informationfor the user identifier; receive, by the server page specificationmanager from a device new page manager of the user device, a command toadd a new page to a particular book of the one or more books, whereinthe particular book corresponds to a book identifier; in response toreceipt, by the server page specification manager, of the command to addthe new page to a particular book of the one or more books, display, bythe server page specification manager, user interface controlscomprising (v) text controls to change a size, a font, a style, ajustification, a color, and an opacity of text to be displayed on thenew page, and (vi) background controls to control a color and an opacityof a text box background corresponding to the text, receive, by theserver page specification manager from a first user device, text to bedisplayed on the new page, generate, by the server page specificationmanager, a set of terms associated with the text based on a semanticanalysis of the text, wherein at least one term in the set of terms isnot included in the text, identify, by the server page specificationmanager, an image to be displayed on the new page based on the text, theset of terms associated with the text, and the social networkinformation, identify, by a server category ad manager, a second set ofcategory words based on recent actions associated with the useridentifier and one or more category tables, synonym tables, and relatedwords tables stored in a server database storage, wherein the each ofthe category tables, synonym tables, and related words tables compriseswords or phrases that correspond to interests, emotions, moods, or acombination thereof that correspond to the user identifier, compare, bythe server category ad manager, the first set of category words to thesecond set of category words and book information regarding theparticular book, identify, by the server category ad manager, a firstsubset of the plurality of advertisements based on the comparison of thefirst set of category words to the second set of category words and thebook information regarding the particular book, identify, by a serversegregation manager, recent actions corresponding to the useridentifier, identify, by the server segregation manager, other useridentifiers stored in the server user information storage, wherein eachof the other user identifiers corresponds to other recent actions abovea first level of similarity to the recent actions corresponding to theuser identifier, generate, by a server score calculation manager, one ormore similarity scores for each of the other user identifiers relativeto the user identifier, wherein the one or more similarity scores for arespective other user identifier indicate a second level of similaritybetween the other recent actions corresponding to the respective otheruser identifier and the recent actions corresponding to the useridentifier, wherein the one or more similarity scores for each of theother user identifiers comprise one or more types of similarity score,and wherein the one or more types of similarity score comprise one ormore of a photo categories score, a similar tags score, a text wordsscore, a word categories score, and a finish/like/comment score, assign,by the server combined score manager, a weight to each of the one ormore types of similarity score using regression analysis, generate, bythe server combined score manager, one or more weighted similarityscores for each of the other user identifiers based on a multiplicationof each of the one or more similarity scores for the respective otheruser identifier and the assigned weight corresponding to a respectivetype of similarity score for each of the one or more similarity scores,generate, by the server combined score manager, a total similarity scorefor each of the other user identifiers based on a summation of the oneor more weighted similarity scores for the respective other useridentifier, retrieve, by a server similar user ad manager from serveruser information storage, clicks information corresponding to eachclicked advertisement in the plurality of advertisements, wherein aclicked advertisement is an advertisement which received a click by oneof the other user identifiers, and wherein the clicks informationcomprises a clickthrough rate for each clicked advertisement by each ofthe other user identifiers, identify, by the server similar user admanager, a second subset of the plurality of advertisements comprising asubset of the clicked advertisements with the highest clickthrough ratesby a subset of the other user identifiers with the highest totalsimilarity scores, identify, by the server ad manager, a displayadvertisement from the plurality of advertisements based on the firstsubset of the plurality of advertisements and the second subset of theplurality of advertisements, wherein the display advertisement isdistinct from the new page; generate, by the server ad manager, andtransmit, by the server ad manager to a device ad manager of the userdevice, rendering instructions for display of the particular book withthe display advertisement, wherein the rendering instructions comprisepage data corresponding to the new page of the particular book; and inresponse to transmission, by the server ad manager, of the renderinginstructions, generate, by a server new page manager, a web pagecomprising user interface elements associated with the new page of theparticular book, transmit, by the server new page manager, the web pageto a device new page manager; receive, by a server book completionmanager, an indication that the user is done creating the particularbook; in response to receipt, by the server book completion manager, ofthe indication that the user is done creating the particular book,generate, by the server book completion manager, a link to theparticular book, wherein the link comprises a URL and REST informationthat identifies the particular book, wherein the URL comprises a toplevel domain, and wherein the REST information comprises information tothe right of a slash after the top level domain of the URL in the link,and store, by the server book completion manager in a server bookstorage, the generated link in association with the user identifier, thebook identifier, a page identifier corresponding to each page of theparticular book, and page data corresponding to each page identifier;and receive, by a server book display manager and from a second userdevice, a request to view the particular book, wherein the requestcomprises the book identifier corresponding to the particular book; inresponse to receipt, by the server book display manager, of the requestto view the particular book, transmit, by the server book displaymanager, the book identifier and the page identifier for a page of theparticular book to server page display manager, receive, by the serverpage display manager, the book identifier and page identifier, andtransmit, by the server page display manager and to the second userdevice, the page data corresponding to the book identifier and pageidentifier to instruct a browser of the user device to render the pagedata corresponding to the book identifier and page identifier.
 12. Thesystem of claim 11, wherein the recorded information comprises level ofinterest information.
 13. The system of claim 12, wherein the level ofinterest information comprises page view information.
 14. The system ofclaim 12, wherein the level of interest information comprises pagecreation information.
 15. The system of claim 12, wherein the level ofinterest information comprises book category information.
 16. The systemof claim 12, wherein the level of interest information comprises bookcategory action information.
 17. The system of claim 11, wherein thewords associated with user selected photos comprise titles or tagsassociated with the user-selected photos.
 18. The system of claim 11,wherein the user-selected photos are drawn from a social mediaapplication.
 19. The apparatus of claim 1, wherein the user-selectedphotos are drawn from a social media application.